package core;

public class Decoder
{
	private static String STRING1 =  "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e\u044f";
	private static String STRING2 = "!\"#$%&'()*+,-./";
	private static String STRING3 = ":;<=>?@";
	private static String STRING4 = "[\\]^_`";
	private static String STRING5 = "{|}~";

//	public static String fromUnicode(String str)//функция переводит строку из Юникода
//	{            
//		String un = "";
//		int num = 0;
//		str = str.trim();
//		
//                for (int i=0;i<str.length();i++)
//                {
//                    try
//                    {
//                        num = (int)str.charAt(i);
//                        if (num == 1105)
//                        {
//                            un += '\u0451';
//                            continue;
//                        }
//                        if (num == 1025)
//                        {
//                            un += '\u0401';
//                            continue;
//                        }
//                        if ((num==1107)||(num==131))
//                        {
//                                un +='\u0453';
//                                continue;
//                        }
//                        if ((num==1108)||(num==186))
//                        {
//                                un +='\u0454';
//                                continue;
//                        }
//                        if ((num==1110)||(num==179))
//                        {
//                                un +='\u0456';
//                                continue;
//                        }
//                        if ((num==1111)||(num==191))
//                        {
//                                un +='\u0457';
//                                continue;
//                        }
//                        if ((num==1027)||(num==129))
//                        {
//                                un +='\u0403';
//                                continue;
//                        }
//                        if ((num==1028)||(num==170))
//                        {
//                                un +='\u0404';
//                                continue;
//                        }
//                        if ((num==1030)||(num==178))
//                        {
//                                un +='\u0406';
//                                continue;
//                        }
//                        if ((num==1031)||(num==175))
//                        {
//                                un +='\u0407';
//                                continue;
//                        }
//                        if (num == 278)
//                        {
//                            un += '\u2116';
//                            continue;
//                        }
//                        if (num>=1040&&num<=1103)
//                        {
//                                num -= 848;
//                        }
//                        if ( (num)>=192 )
//                        {
//                                un += STRING1.charAt(num-192);
//                                continue;
//                        }
//                        if ( (num)==136 )
//                        {
//                                un += "€";
//                                continue;
//                        }
//                        un += str.charAt(i);
//                    }
//                    catch(Exception e)
//                    {
//                        un += "?";
//                        System.out.println("decoderError ");
//                    }
//                }
//		
//		return un;
//	}
	
	public static String fromUnicodeRMS(String str)
	{
		String un = "";
		int num;
		str = str.trim();
                for (int i=0;i<str.length();i++)
                {
                        num = (int)str.charAt(i);
                        if (num<=0)
                        {
                                num += 256;
                        }
                        if (num>=1040&&num<=1103)
                        {
                                num -= 848;
                        }
                        if ( (num)>=192 )
                        {
                                un += STRING1.charAt(num-192);
                                continue;
                        };
                        un += str.charAt(i);
                }
		return un;
	}
	
	public static String formatText(String str)//функция делает обратную операцию экранирования для кавычек
	{
		String un,temp;
		un = str;
		while (un.indexOf("&quot;")!=-1) 
		{
			int i = un.indexOf("&quot;");
			temp = un;
			un = temp.substring(0,i);
			un = un.concat("\"");
			un = un.concat(temp.substring(i+6));
		}
		return un;
	}
}
